package ninja.awesome.framework;

import android.graphics.Paint;

public interface Graphics {
	public static enum ImageFormat {
		ARGB8888, ARGB4444, RGB565
	}

	/**
	 * @param fileName
	 * @param format
	 * @return
	 */
	public Image newImage(String fileName, ImageFormat format);

	/**
	 * @param color
	 */
	public void clearScreen(int color);

	/**
	 * @param x
	 * @param y
	 * @param x2
	 * @param y2
	 * @param color
	 */
	public void drawLine(int x, int y, int x2, int y2, int color);

	/**
	 * @param x
	 * @param y
	 * @param width
	 * @param height
	 * @param color
	 */
	public void drawRect(int x, int y, int width, int height, int color);

	/**
	 * @param image
	 * @param x
	 * @param y
	 * @param srcX
	 * @param srcY
	 * @param srcWidth
	 * @param srcHeight
	 */
	public void drawImage(Image image, int x, int y, int srcX, int srcY, int srcWidth, int srcHeight);

	/**
	 * @param Image
	 * @param x
	 * @param y
	 */
	public void drawImage(Image Image, int x, int y);

	/**
	 * @param text
	 * @param x
	 * @param y
	 * @param paint
	 */
	void drawString(String text, int x, int y, Paint paint);

	/**
	 * @return
	 */
	public int getWidth();

	public int getHeight();

	public void drawARGB(int i, int j, int k, int l);

	public void fillRect(int x, int y, int width, int height, int color);

	public void drawImage(Image img, int x, int y, int srcWidth, int srcHeight, int srcX, int srcY, int srcW, int srcH);

}
